/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.khk.lesson;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;

/**
 *
 * @author Jeroen
 */
@Named
@javax.enterprise.context.RequestScoped
public class userpagesController {

    @Inject
    private ReisController reiscontroller;
    private Reis reisDetailPagina;
    private Bestemming bestemmingDetailpagina;
    private Vervoer vervoersmiddelDetailpagina;
    private Klant klantBoekingsPagina;
    private Reis reisBoekingsPagina;
    private List<Reis> reizenByPeriode;
    private Integer aantalPersonenBoeking;
    private Integer betaalMethodeID;
    private List<Betaalmethode> betaalMethodesBoekingsPagina;
    @Inject
    private VervoerController vervoerController;
    @Inject
    private BestemmingController bestemmingController;
    @Inject
    private KlantController klantController;
    @Inject
    private BetaalmethodeController betaalMethodeController;

    public Klant getKlantBoekingsPagina() {
        return klantBoekingsPagina;
    }

    public void setKlantBoekingsPagina(Klant klantBoekingsPagina) {
        this.klantBoekingsPagina = klantBoekingsPagina;
    }

    public Reis getReisBoekingsPagina() {
        return reisBoekingsPagina;
    }

    public void setReisBoekingsPagina(Reis reisBoekingsPagina) {
        this.reisBoekingsPagina = reisBoekingsPagina;
    }

    public Bestemming getBestemmingDetailpagina() {
        return bestemmingDetailpagina;
    }

    public void setBestemmingDetailpagina(Bestemming bestemmingDetailpagina) {
        this.bestemmingDetailpagina = bestemmingDetailpagina;
    }

    public Vervoer getVervoersmiddelDetailpagina() {
        return vervoersmiddelDetailpagina;
    }

    public void setVervoersmiddelDetailpagina(Vervoer vervoersmiddelDetailpagina) {
        this.vervoersmiddelDetailpagina = vervoersmiddelDetailpagina;
    }

    public List<Reis> getReizenByPeriode() {
        return reizenByPeriode;
    }

    public void setReizenByPeriode(List<Reis> reizenByPeriode) {
        this.reizenByPeriode = reizenByPeriode;
    }

    public Reis getReisDetailPagina() {
        return reisDetailPagina;
    }

    public void setReisDetailPagina(Reis reisDetailPagina) {
        this.reisDetailPagina = reisDetailPagina;
    }

    public List<Betaalmethode> getBetaalMethodesBoekingsPagina() {
        return betaalMethodesBoekingsPagina;
    }

    public void setBetaalMethodesBoekingsPagina(List<Betaalmethode> betaalMethodesBoekingsPagina) {
        this.betaalMethodesBoekingsPagina = betaalMethodesBoekingsPagina;
    }

    public Integer getAantalPersonenBoeking() {
        return aantalPersonenBoeking;
    }

    public void setAantalPersonenBoeking(Integer aantalPersonenBoeking) {
        this.aantalPersonenBoeking = aantalPersonenBoeking;
    }

    public Integer getBetaalMethodeID() {
        return betaalMethodeID;
    }

    public void setBetaalMethodeID(Integer betaalMethodeID) {
        this.betaalMethodeID = betaalMethodeID;
    }

    public String gaNaarDetailPagina() {
        FacesContext context = FacesContext.getCurrentInstance();
        Integer reisID = Integer.parseInt(context.getExternalContext().getRequestParameterMap().get("reisID"));
        reisDetailPagina = reiscontroller.getReisById(reisID);
        vervoersmiddelDetailpagina = vervoerController.getVervoerById(reisDetailPagina.getVervoersID().getId());
        bestemmingDetailpagina = bestemmingController.getBestemmingById(reisDetailPagina.getBestemmingsID().getId());


        return "./detailPagina.xhtml";
    }

    public String boekReisEnGaNaarOverzicht(){
    //reis boeken en naar overzicht sturen
        FacesContext context = FacesContext.getCurrentInstance();
        Integer klantID = Integer.parseInt(context.getExternalContext().getRequestParameterMap().get("klantID"));
        Integer reisID = Integer.parseInt(context.getExternalContext().getRequestParameterMap().get("reisID"));
         System.out.print("KLANTIDEEEEEEEEE       " + klantID.toString());
        System.out.print("REISIDEEEEE       " + reisID.toString());
         System.out.print("aantalpers       " + aantalPersonenBoeking.toString());
        System.out.print("betaalmethlol       " + betaalMethodeID.toString());
    return "./index.xhmtl";
    
    }
    
    public String gaNaarBoekingsPagina() {
        // adhv klantId, reisID pagina opvullen met klantgegevens en betaalmethode, 
        //daarna wegschrijven en returnen naar index
        FacesContext context = FacesContext.getCurrentInstance();
        Integer klantID = Integer.parseInt(context.getExternalContext().getRequestParameterMap().get("klantID"));
        Integer reisID = Integer.parseInt(context.getExternalContext().getRequestParameterMap().get("reisID"));
        klantBoekingsPagina = klantController.getKlantByID(klantID);
        reisBoekingsPagina = reiscontroller.getReisById(reisID);
        betaalMethodesBoekingsPagina = betaalMethodeController.getBetaalmethodes();

       
        return "./boekingsPagina.xhtml";
    }

    public String gaNaarReisPeriodePagina() {
        FacesContext context = FacesContext.getCurrentInstance();
        String terugkeerDatum = context.getExternalContext().getRequestParameterMap().get("terugkeerDatum");
        String vertrekDatum = context.getExternalContext().getRequestParameterMap().get("vertrekDatum");
        Date vertrekDatumGeformatteerd = null;
        Date terugkeerDatumGeformatteerd = null;
        try {
            vertrekDatumGeformatteerd = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH).parse(vertrekDatum);
            terugkeerDatumGeformatteerd = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH).parse(terugkeerDatum);
        } catch (ParseException ex) {
            Logger.getLogger(ReisController.class.getName()).log(Level.SEVERE, null, ex);
        }

        // reizenByPeriode = reiscontroller.getReisByPeriode(terugkeerDatumGeformatteerd, vertrekDatumGeformatteerd);
        reizenByPeriode = reiscontroller.getReizen();
        return "./SearchResults.xhtml";
    }
}
